<?php
/**
 * Created by Veyron
 * User: Vy
 * motto:现在的拼搏 为了更好的明天
 * day:  2020/1/13
 * Time: 23:01
 */
declare(strict_types=1);
namespace app\common\business;

use app\common\lib\ClassArr;
use app\common\lib\Num;

class Sms{
    public static function sendCode(string $phoneNumber,int $len = 6, string $type='ali'):bool{
        //生成验证码 一般为 4位或6位
        $code = Num::getCode($len);
//        $sms  = AliSms::sendCode($phoneNumber,$code);
        //工厂模式
//        $type = ucfirst($type);
//        $class = 'app\common\lib\sms\\'.$type.'Sms';
//        $sms = $class::sendCode($phoneNumber,$code);
        $smsClassStat = ClassArr::smsClassStat();
        $smsClassObj = ClassArr::initClass($type,$smsClassStat,[],false);
        $sms = $smsClassObj::sendCode($phoneNumber,$code);
        if($sms){
            //发送成功记录 验证码记录到redis 并且需要给一个失效时间 一般为 1 分钟
            //aliyun 调试模式不发送短信 默认验证码为
            if(config('aliyun.ali_debug')){
                $code = config('aliyun.ali_debug_code');
            }
            cache(config('redis.code_pre').$phoneNumber,$code,config('redis.code_expire'));
        }
        return  true;
    }
}
